<?php
/**
 * Game_User
 *
 * Класс Game_User обрабатывает данные, связанные с пользователями
 *
 * @author Дмитрий Кузьма <kouzma.d@gmail.com>
 * @version 1.1
 */
class Game_User extends User_User {

	protected $_arrEvents; // Массив событий, относящихся к данному пользователю
	/**
	 * 
	 * @param mixed $arrInitialFields
	 */
	public function __construct($arrInitialFields = null) {
		parent::__construct($arrInitialFields);
		if (is_numeric($arrInitialFields)) {
			//$this->objResourcesWithProduction = new Game_ResourceWithProduction($this->tableFields);
		}
	}
	
	/**
	 * Получает список событий, относящихся к данному пользователю
	 * 
	 * @return array
	 */
	protected function _getGameEvents() {
		if (!$this->id) return array();
		$stmt = "
			SELECT * 
			FROM `game_event`
			WHERE `game_event`.`ID_user` = '" . $this->id . "'
		";
		$objDB = Service_Database::instance();
		$this->_arrEvents = $objDB->select($stmt);
		return $this->_arrEvents; 
	}
	
	/**
	 * Получает список, событий
	 *
	 * @return array Возвращает массив отстроенных зданий
	 */
	public function getEventsData() {
		if (!isset($this->_arrEvents)) $this->_getGameEvents();
		return $this->_arrEvents;
	}
	
	/**
	 * Подсчитывает и обновляет полуляцию аккаунта
	 */
	public function calculateAndUpdatePopulation() {
		if (!$this->id) return false;
		$stmt = "UPDATE `user`
			SET `user`.`population` =(
				SELECT SUM(`place`.`consumption_static_1`)
				FROM `place`
				WHERE	`place`.`ID_user` = 1
			)
			WHERE	`user`.`ID_user` = 1
			LIMIT 1;
		";
		$objDB = Service_Database::instance();
		$objDB->query($stmt);
	}
}
?>